home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / swing / OverlayLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.9 KB  |  137 lines

  1. package javax.swing;
  2.  
  3. import java.awt.AWTError;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dimension;
  7. import java.awt.Insets;
  8. import java.awt.LayoutManager2;
  9. import java.io.Serializable;
  10.  
  11. public class OverlayLayout implements LayoutManager2, Serializable {
  12.    private Container target;
  13.    private SizeRequirements[] xChildren;
  14.    private SizeRequirements[] yChildren;
  15.    private SizeRequirements xTotal;
  16.    private SizeRequirements yTotal;
  17.  
  18.    public OverlayLayout(Container var1) {
  19.       this.target = var1;
  20.    }
  21.  
  22.    public final Container getTarget() {
  23.       return this.target;
  24.    }
  25.  
  26.    public void invalidateLayout(Container var1) {
  27.       this.checkContainer(var1);
  28.       this.xChildren = null;
  29.       this.yChildren = null;
  30.       this.xTotal = null;
  31.       this.yTotal = null;
  32.    }
  33.  
  34.    public void addLayoutComponent(String var1, Component var2) {
  35.       this.invalidateLayout(var2.getParent());
  36.    }
  37.  
  38.    public void removeLayoutComponent(Component var1) {
  39.       this.invalidateLayout(var1.getParent());
  40.    }
  41.  
  42.    public void addLayoutComponent(Component var1, Object var2) {
  43.       this.invalidateLayout(var1.getParent());
  44.    }
  45.  
  46.    public Dimension preferredLayoutSize(Container var1) {
  47.       this.checkContainer(var1);
  48.       this.checkRequests();
  49.       Dimension var2 = new Dimension(this.xTotal.preferred, this.yTotal.preferred);
  50.       Insets var3 = var1.getInsets();
  51.       var2.width += var3.left + var3.right;
  52.       var2.height += var3.top + var3.bottom;
  53.       return var2;
  54.    }
  55.  
  56.    public Dimension minimumLayoutSize(Container var1) {
  57.       this.checkContainer(var1);
  58.       this.checkRequests();
  59.       Dimension var2 = new Dimension(this.xTotal.minimum, this.yTotal.minimum);
  60.       Insets var3 = var1.getInsets();
  61.       var2.width += var3.left + var3.right;
  62.       var2.height += var3.top + var3.bottom;
  63.       return var2;
  64.    }
  65.  
  66.    public Dimension maximumLayoutSize(Container var1) {
  67.       this.checkContainer(var1);
  68.       this.checkRequests();
  69.       Dimension var2 = new Dimension(this.xTotal.maximum, this.yTotal.maximum);
  70.       Insets var3 = var1.getInsets();
  71.       var2.width += var3.left + var3.right;
  72.       var2.height += var3.top + var3.bottom;
  73.       return var2;
  74.    }
  75.  
  76.    public float getLayoutAlignmentX(Container var1) {
  77.       this.checkContainer(var1);
  78.       this.checkRequests();
  79.       return this.xTotal.alignment;
  80.    }
  81.  
  82.    public float getLayoutAlignmentY(Container var1) {
  83.       this.checkContainer(var1);
  84.       this.checkRequests();
  85.       return this.yTotal.alignment;
  86.    }
  87.  
  88.    public void layoutContainer(Container var1) {
  89.       this.checkContainer(var1);
  90.       this.checkRequests();
  91.       int var2 = var1.getComponentCount();
  92.       int[] var3 = new int[var2];
  93.       int[] var4 = new int[var2];
  94.       int[] var5 = new int[var2];
  95.       int[] var6 = new int[var2];
  96.       Dimension var7 = var1.getSize();
  97.       Insets var8 = var1.getInsets();
  98.       var7.width -= var8.left + var8.right;
  99.       var7.height -= var8.top + var8.bottom;
  100.       SizeRequirements.calculateAlignedPositions(var7.width, this.xTotal, this.xChildren, var3, var4);
  101.       SizeRequirements.calculateAlignedPositions(var7.height, this.yTotal, this.yChildren, var5, var6);
  102.  
  103.       for(int var9 = 0; var9 < var2; ++var9) {
  104.          Component var10 = var1.getComponent(var9);
  105.          var10.setBounds(var8.left + var3[var9], var8.top + var5[var9], var4[var9], var6[var9]);
  106.       }
  107.  
  108.    }
  109.  
  110.    void checkContainer(Container var1) {
  111.       if (this.target != var1) {
  112.          throw new AWTError("OverlayLayout can't be shared");
  113.       }
  114.    }
  115.  
  116.    void checkRequests() {
  117.       if (this.xChildren == null || this.yChildren == null) {
  118.          int var1 = this.target.getComponentCount();
  119.          this.xChildren = new SizeRequirements[var1];
  120.          this.yChildren = new SizeRequirements[var1];
  121.  
  122.          for(int var2 = 0; var2 < var1; ++var2) {
  123.             Component var3 = this.target.getComponent(var2);
  124.             Dimension var4 = var3.getMinimumSize();
  125.             Dimension var5 = var3.getPreferredSize();
  126.             Dimension var6 = var3.getMaximumSize();
  127.             this.xChildren[var2] = new SizeRequirements(var4.width, var5.width, var6.width, var3.getAlignmentX());
  128.             this.yChildren[var2] = new SizeRequirements(var4.height, var5.height, var6.height, var3.getAlignmentY());
  129.          }
  130.  
  131.          this.xTotal = SizeRequirements.getAlignedSizeRequirements(this.xChildren);
  132.          this.yTotal = SizeRequirements.getAlignedSizeRequirements(this.yChildren);
  133.       }
  134.  
  135.    }
  136. }
  137.